# -*- coding: UTF-8 -*-
import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
know_host = paramiko.AutoAddPolicy()
client.set_missing_host_key_policy(know_host)


# noinspection PyShadowingNames
def ssh(ip, port, username, passwd, shell):
    # def ssh(hostinfo, shell):
    client.connect(hostname=ip, port=port, username=username, password=passwd)
    stdin, stdout, stderr = client.exec_command(shell, get_pty=True, timeout=1)
    # get_pty=True #可以同时执行多条命令
    out = (stdout.read().decode('utf-8'))
    status = stdout.channel
    code = status.recv_exit_status()
    print(stderr)
    outinfo = {
        "host": ip,
        "out": out,
        "code": code,
        "error": stderr,
    }
    print(outinfo)
    return outinfo


if __name__ == '__main__':
    ssh('172.18.240.2', 22, 'root', 'iyunbao@6688', 'ls /root')
